#ifndef _FIRE_ENTITY_H_
#define _FIRE_ENTITY_H_

#include "AbstractEntity.h"
#include "FireData.h"

#define FIRE_V 1.0f

class FireEntity : public AbstractEntity
{
private:
	FireData* _data;

	double _nextX;
	double _x0;
	double _movingRight;
	double _movingLeft;

public:
	//************************************
	// Method:    FireEntity
	// FullName:  FireEntity::FireEntity
	// Access:    public 
	// Returns:   
	// Qualifier:
	// Parameter: int id
	// Parameter: int type
	// Parameter: double x
	// Parameter: double y
	// Parameter: Rect * bridgeRect
	//************************************
	FireEntity(int id, int type, double x, double y, Rect* bridgeRect);

	//************************************
	// Method:    update
	// FullName:  FireEntity::update
	// Access:    virtual public 
	// Returns:   void
	// Qualifier:
	// Parameter: long time
	//************************************
	virtual void update(long time);

	//************************************
	// Method:    draw
	// FullName:  FireEntity::draw
	// Access:    virtual public 
	// Returns:   void
	// Qualifier:
	// Parameter: long time
	//************************************
	virtual void draw(long time);

	//************************************
	// Method:    getAbstractData
	// FullName:  FireEntity::getAbstractData
	// Access:    virtual public 
	// Returns:   AbstractData*
	// Qualifier:
	//************************************
	virtual AbstractData* getAbstractData();

	//************************************
	// Method:    swapV
	// FullName:  FireEntity::swapV
	// Access:    public 
	// Returns:   void
	// Qualifier:
	//************************************
	void swapV();

	//************************************
	// Method:    ~FireEntity
	// FullName:  FireEntity::~FireEntity
	// Access:    public 
	// Returns:   
	// Qualifier:
	//************************************
	~FireEntity();

};
#endif